Skip to content

refactor: change project structure to include core lib#42

Merged
rnxm merged 6 commits intomainfrom
dev
Sep 21, 2025
Merged

refactor: change project structure to include core lib#42
rnxm merged 6 commits intomainfrom
dev

Conversation

@rnxm
Copy link
Copy Markdown
Contributor

@rnxm rnxm commented Sep 21, 2025

Circular imports are a pain in the ass. This also improves performance (somehow almost 0.5s in startup time) while improving organization, clearness and readability

This moves every single class from main.py into their own standalone class within the core library. This improves type safety by removing the requirement for developers to put quotation marks around type annotations for types like MyClient and Context. This also removes the need for the if TYPE_CHECKING block (thank god.)

Obviously, MyClient will be renamed once the bot is done

@rnxm rnxm requested a review from Copilot September 21, 2025 11:16
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR refactors the project structure to move core bot functionality out of the single main.py file into a dedicated core library. This improves organization, eliminates circular import issues, and enhances type safety by removing the need for quoted type annotations and if TYPE_CHECKING blocks.

Key Changes:

  • Extracted bot classes and utilities from main.py into separate core modules
  • Added new dependencies (pillow, asyncpraw, pytemperature) to project requirements
  • Created dedicated admin cog for bot management commands

Reviewed Changes

Copilot reviewed 22 out of 24 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
main.py Significantly simplified to only contain bot instantiation and startup logic
core/ New library containing MyClient, Context, Command, Argument, and localization classes
cogs/ Updated all cogs to import core types directly instead of using TYPE_CHECKING
pyproject.toml Added new project dependencies
helpers/custom_args.py Minor update to support both User and Member types

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread core/bot.py Outdated
Comment thread core/bot.py Outdated
Comment thread core/bot.py Outdated
Comment thread core/bot.py Outdated
Comment thread cogs/log.py
Comment thread cogs/info.py
Comment thread cogs/info.py
Comment thread cogs/afk.py Outdated
Comment thread core/bot.py
Comment thread core/bot.py
rnxm and others added 4 commits September 21, 2025 13:20
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@rnxm rnxm merged commit 803f06f into main Sep 21, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants